/**
 * 请求测试工具
 * 用于对比不同请求方式的差异
 */

import { createFileFormData, debugFormData } from './formDataHelper';
import { uploadFile } from './request';

/**
 * 测试 FormData 上传
 */
export async function testFormDataUpload() {
  const testContent = `
# 测试PPT标题

## 数字营销体系构建规范

目标：构建高效人机协作的黄金法则

设计建议：科技感背景，核心目标图标（如齿轮、神经网络、对话气泡）
  `;

  console.log('=== FormData 上传测试 ===');

  // 创建 FormData
  const formData = createFileFormData(testContent, 'test-report.md', 'text/markdown');

  // 调试 FormData
  debugFormData(formData);

  try {
    console.log('发送请求...');
    const response = await uploadFile('/intelligent/ppt', formData);
    console.log('响应结果:', response);
    return response;
  }
  catch (error) {
    console.error('请求失败:', error);
    throw error;
  }
}

/**
 * 对比原生 XMLHttpRequest 方式
 */
export function testXMLHttpRequest() {
  return new Promise((resolve, reject) => {
    const testContent = `
# 测试PPT标题

## 数字营销体系构建规范

目标：构建高效人机协作的黄金法则

设计建议：科技感背景，核心目标图标（如齿轮、神经网络、对话气泡）
    `;

    console.log('=== XMLHttpRequest 上传测试 ===');

    const formData = new FormData();
    const blob = new Blob([testContent], { type: 'text/markdown' });
    formData.append('file', blob, 'test-report.md');

    const xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          console.log('XMLHttpRequest 成功:', xhr.responseText);
          resolve(JSON.parse(xhr.responseText));
        }
        else {
          console.error('XMLHttpRequest 失败:', xhr.status, xhr.statusText);
          reject(new Error(`${xhr.status}: ${xhr.statusText}`));
        }
      }
    };

    xhr.open('POST', `${import.meta.env.VITE_API_URL}/intelligent/ppt`);

    // 添加认证头（如果需要）
    // xhr.setRequestHeader('Authorization', 'Bearer your-token');

    // 不要设置 Content-Type，让浏览器自动设置
    xhr.send(formData);
  });
}
